package topic1

func main() {

}

// 时间：O(n^2)
// 空间：O(1)
func twoSum1(nums []int, target int) []int {
	l := len(nums)
	for i := 0; i < l; i++ {
		otherValue := target - nums[i] //  otherValue = 结果 - i 位置的数
		for j := i + 1; j < l; j++ {
			if otherValue == nums[j] { //  otherValue 与 j 位置比较
				return []int{i, j}
			}
		}
	}
	return []int{}
}

// 时间：O(n)
// 空间：O(n)    maps  变量占用空间与 nums 长度有关
func twoSum2(nums []int, target int) []int {
	l := len(nums)
	maps := make(map[int]int, l)
	for i := 0; i < l; i++ {
		index, exist := maps[target-nums[i]]
		if exist && index != i {
			return []int{index, i}
		}
		maps[nums[i]] = i
	}
	return []int{}
}
